package at.fhj.pse.domain;

import java.util.Date;
import java.util.List;

import at.fhj.pse.datasource.model.Activity;
import at.fhj.pse.datasource.model.Employee;
import at.fhj.pse.datasource.model.TimeInterval;
import at.fhj.pse.domain.service.IntervalService;

public interface TimeIntervalBean {
	List<TimeInterval> getIntervalsByDay(Date day, Employee employee);
	List<TimeInterval> getIntervalsByActivity(Activity activity, Date fromDate, Date toDate, Employee employee);
	List<TimeInterval> getIntervalsByDates(Date fromDate, Date toDate, Employee employee);
	List<String> getActivityNames();
	boolean validateToGreaterThanFrom(Date toDate, Date fromDate);
	boolean validateSameDay(Date toDate, Date fromDate);
	boolean intervalOverlap(Employee employee, Date toDate, Date fromDate);
	void addTimeInterval(Employee employee, Date toDate, Date fromDate, String comment, Activity tiActivity);
	void deleteTimeIntervalById(long interval_id);
	List<TimeInterval> getAllEmployeeIntervals(long employeeId);
	List<TimeInterval> loadAllEmployeeIntervals(long employeeId);
	IntervalService getIntervalServiceByDay(Date day, Employee employee);
	IntervalService getIntervalServiceByMonthAndYear(Employee employee, String month, int year);
	IntervalService getIntervalServiceByActivity(Employee employee, Date toDate, Date fromDate, Activity tiActivity);
	IntervalService getIntervalServiceByDates(Employee employee, Date toDate, Date fromDate);
	Activity getActivityByName(String activityName);
}